package com.example.yls.intent_service;
/*
* IntentService
* 本质是一种特殊的Service,继承自Service并且本身就是一个抽象类
* 可以用于在后台执行耗时的异步任务，当任务完成后会自动停止
* 拥有较高的优先级，不易被系统杀死（继承自Service的缘故），因此比较适合执行一些高优先级的异步任务
* 内部通过HandlerThread和Handler实现异步操作
* 创建IntentService时，只需实现onHandleIntent和构造方法，onHandleIntent为异步方法，可以执行耗时操作
* */

import android.app.IntentService;
import android.content.Intent;
import android.content.Context;
import android.util.Log;

//自动执行多线程
public class MyIntentService extends IntentService {
    public MyIntentService() {
        super("MyIntentService");
    }


    //不做任何事情，一旦启动立即销毁
    //onHandleIntent 专门执行多线程
    @Override
    protected void onHandleIntent(Intent intent) {
        Log.e("onHandleIntent","thread id="+Thread.currentThread().getId());

        //下载地址
        String url=intent.getStringExtra("URL");
        Log.e("onHandleIntent","url="+url);

        /* //到了29，Service会自动销毁
        int i=0;
        while (i < 30) {
            Log.e("MyService", "i=" + i);
            i++;
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }*/
    }

    @Override
    public void onCreate() {
        super.onCreate();
        Log.e("MyIntentServiceonCreate","thread id="+Thread.currentThread().getId());
    }

    @Override
    public void onDestroy() {
        Log.e("MyIntentService","onDestroy");
        super.onDestroy();
    }
}
